{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五次练习"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "+ 请务必交到exer5文件夹下，**谢绝交到master下**\n",
    "+ 请不要改动任何文件，拜托\n",
    "+ 请在11月7日前提交。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "请写一下姓名和学号：\n",
    "+ 姓名  \n",
    "+ 学号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "岑雪莹\n",
    "0165201"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 题目一、贫困户模型\n",
    "+ 创建一个类，包含贫困户的义务教育保障、住房安全、饮水安全、肉蛋奶豆的四个属性\n",
    "+ 包含一个是否贫困的预测，如果四个属性有两个以上没有保障（>2)则输出为贫困户\n",
    "+ 对贫困户，采取相应措施（输入参数）对其进行帮扶，使其脱贫\n",
    "+ 至少生成三个实例\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "住户1:\n",
      "贫困户\n",
      "增加义务教育保障\n",
      "安装自来水\n",
      "食物补贴\n",
      "\n",
      "住户2:\n",
      "贫困户\n",
      "修建新住房\n",
      "安装自来水\n",
      "食物补贴\n",
      "\n",
      "住户3:\n",
      "非贫困户\n"
     ]
    }
   ],
   "source": [
    "class preoccupied(object):\n",
    "    def __init__(individual,x1,x2,x3,x4): \n",
    "        individual.education = x1\n",
    "        individual.home = x2\n",
    "        individual.water = x3\n",
    "        individual.food = x4\n",
    "    \n",
    "    def jiaoyu(individual,numbers):\n",
    "        if numbers > 2 :\n",
    "            individual.education = 1\n",
    "        else :\n",
    "            individual.education = 0 \n",
    "            \n",
    "    def zhufang(individual,hectares):\n",
    "        if hectares > 80 :\n",
    "            individual.home = 1\n",
    "        else :\n",
    "            individual.home = 0\n",
    "            \n",
    "    def yinshui(individual,volumes):\n",
    "        if volumes > 5000 :\n",
    "            individual.water = 1\n",
    "        else :\n",
    "            individual.water = 0\n",
    "                        \n",
    "    def shiwu(individual,species):\n",
    "        if species > 2:\n",
    "            individual.food = 1\n",
    "        else :\n",
    "            individual.food = 0\n",
    "def predict(family):\n",
    "    sum = 0\n",
    "    if family.education == 1:\n",
    "        sum += 1\n",
    "    if family.home == 1:\n",
    "        sum += 1\n",
    "    if family.water == 1:\n",
    "        sum += 1\n",
    "    if family.food == 1:\n",
    "        sum += 1\n",
    "    if sum < 2:\n",
    "        print(\"贫困户\")\n",
    "        if family.education == 0:\n",
    "            print('增加义务教育保障')\n",
    "        if family.home == 0:\n",
    "            print('修建新住房')\n",
    "        if family.water == 0:\n",
    "            print('安装自来水')\n",
    "        if family.food == 0:\n",
    "            print('食物补贴')\n",
    "    else :\n",
    "        print(\"非贫困户\")\n",
    "    \n",
    "family1 = preoccupied(object,object,object,object)\n",
    "family2 = preoccupied(object,object,object,object)\n",
    "family3 = preoccupied(object,object,object,object)\n",
    "\n",
    "family1.jiaoyu(numbers = 1)\n",
    "family1.zhufang(hectares = 100)\n",
    "family1.yinshui(volumes = 3500)\n",
    "family1.shiwu(species = 2)\n",
    "print('\\n住户1:')\n",
    "predict(family1)\n",
    "\n",
    "family2.jiaoyu(numbers = 3)\n",
    "family2.zhufang(hectares = 60)\n",
    "family2.yinshui(volumes = 5000)\n",
    "family2.shiwu(species = 1)\n",
    "print('\\n住户2:')\n",
    "predict(family2)\n",
    "\n",
    "family3.jiaoyu(numbers = 3)\n",
    "family3.zhufang(hectares = 100)\n",
    "family3.yinshui(volumes = 5500)\n",
    "family3.shiwu(species = 4)\n",
    "print('\\n住户3:')\n",
    "predict(family3)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 题目二: 学生信息\n",
    "+ 创建一个类，包含姓名、分数、睡眠时间三个属性\n",
    "+ 包含一个胖瘦的预测，如果分数>90，且睡眠时间少于6小时，输出“BMI可能偏大”，否则输出“体重正常”\n",
    "+ 为使得标准（90分、6小时）可以调整，标准应设为输入的参数\n",
    "+ 至少生成三个实例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "体重正常\n",
      "体重正常\n",
      "BMI可能偏大\n"
     ]
    }
   ],
   "source": [
    "class student(object):\n",
    " \n",
    "    def __init__(self, name, score, time):\n",
    "        self.name = name\n",
    "        self.score = score\n",
    "        self.time = time\n",
    "  \n",
    "    def get_grade(self,c1,c2):\n",
    "        if self.score > c1 and self.time < c2:\n",
    "            print('BMI可能偏大')\n",
    "        else:\n",
    "            print('体重正常')\n",
    "            \n",
    "stu1 = student('张三',90,7)\n",
    "stu1.get_grade(90,6)\n",
    "\n",
    "stu2 = student('李四',85,5.5)\n",
    "stu2.get_grade(90,6)\n",
    "\n",
    "stu3 = student('王五',100,5)\n",
    "stu3.get_grade(90,6)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 题目三：“跑步社”成员类\n",
    "+ 创建一个“跑步社”成员类，以学生信息类为父类\n",
    "+ 添加一个属性为跑步\n",
    "+ 如果跑步时间大于30分钟，如果之前预测为“BMI可能偏大”，则输出为“趋向正常”\n",
    "+ 至少生成三个实例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "体重正常\n",
      "体重正常\n",
      "体重正常\n"
     ]
    }
   ],
   "source": [
    "class running_club(student):\n",
    " \n",
    "    def __init__(self, name, score, time, run):\n",
    "        super().__init__(name, score, time)\n",
    "        self.run = run\n",
    "  \n",
    "    def get_grade(self,c1,c2):\n",
    "        if self.score > c1 and self.time < c2:\n",
    "            if self.run > 30:\n",
    "                print('体重正常')\n",
    "            else:\n",
    "                print('BMI可能偏大')\n",
    "        else:\n",
    "            print('体重正常')\n",
    "            \n",
    "stu1 = running_club('张三',90,7,20)\n",
    "stu1.get_grade(90,6)\n",
    "\n",
    "stu2 = running_club('李四',85,5.5,15)\n",
    "stu2.get_grade(90,6)\n",
    "\n",
    "stu3 = running_club('王五',100,5,40)\n",
    "stu3.get_grade(90,6)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
